home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / b / b.lha / B / src / bed / cell.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-11-24  |  951 b   |  40 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
  2. /* $Header: cell.h,v 2.0 84/06/18 15:46:34 guido Exp $ */
  3.  
  4. /*
  5.  * B editor -- Definitions for linked lists of screen lines, baptized `cells'.
  6.  * (This is NOT an abstract data type!)
  7.  */
  8.  
  9. struct cell {
  10.     struct cell *c_link;
  11.     node c_data;
  12.     short c_onscreen;
  13.     short c_oldindent;
  14.     short c_newindent;
  15.     short c_length;
  16.     char c_oldvhole;
  17.     char c_newvhole; /* Yes if this line contains a `vhole' */
  18.     char c_oldfocus;
  19.     char c_newfocus; /* Yes if this line contains underlining */
  20. };
  21.  
  22. typedef struct cell cell;
  23.  
  24. #define Cnil ((cell*) NULL)
  25.  
  26. #define Nowhere (-9999)
  27.  
  28. #define SpaceRound(x) ((indent + (x) + llength - 1) / llength)
  29. #define Space(p) \
  30.     SpaceRound((p)->c_length + (p)->c_newindent + (p)->c_newvhole)
  31. #define Oldspace(p) \
  32.     SpaceRound((p)->c_length + (p)->c_newindent + (p)->c_newvhole)
  33.  
  34. cell *replist();
  35. cell *build();
  36.  
  37. extern int llength;
  38. extern int winheight;
  39. extern int indent;
  40.